Programmable logic devices (PLDs) such as field-programmable gate arrays (FPGAs) and application-specific integrated circuits (ASICs) are integrated circuits (ICs) devices that include generic structures and logic blocks that can be configured to perform different functions. Some of these logic blocks include logic circuitry, registers, I/O blocks, digital signal processing (DSP) blocks, one-time programmable (OTP) fuse blocks, etc. These circuitry elements are programmable to perform any of a variety of tasks and functions.
Generally speaking, a particular circuit design on one IC device can be migrated to another device. For instance, a circuit design originally intended for an ASIC device may be migrated to a corresponding FPGA device, and vice versa. A software design tool is generally used to compile such a circuit design and migrate or convert an implementation of that design on one device to a functionally equivalent device.
Typically, when converting or migrating from one device to another, the functional equivalence between both devices needs to be preserved. In some cases, this includes maintaining a 1-to-1 block mapping between the devices. In other words, logic blocks that exist in one device must be mapped to an equivalent or identical block in a corresponding device. For instance, in order to successfully migrate a design implemented on an ASIC device to an FPGA device, there needs to be a corresponding logic block in the FPGA device for every logic block utilized in the ASIC device. Generally speaking, a design implemented on an ASIC device that includes, for example, an OTP fuse block, cannot be migrated to an FPGA device that does not include an OTP fuse block. In that sense, there is a certain restriction on the selection of devices when it comes to migrating or converting an ASIC design to an FPGA design, and vice versa.
However, if IC devices can be configured to emulate logic blocks that may not be physically present on the device, migrating an IC design from one device to another will be much simpler. For instance, a design implemented on an ASIC device that includes an OTP fuse block can now be migrated to an FPGA device that does not include an OTP fuse block, as long as the FPGA device can be configured to emulate the functionality of an OTP fuse block. This substantially increases the level of flexibility when it comes to migrating an IC design from one device to another.
Therefore, it is desirable to have a mechanism or technique to emulate logic blocks on an IC device using resources that are available on the IC device. As such, an IC design implemented on a particular device can be easily migrated to and implemented on another device without being restricted to a 1-to-1 logic block mapping between the two devices.
It is within this context that the invention arises.